package org.dromara.nft.domain.bo;

import org.dromara.nft.domain.NftItem;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * nft业务对象 nft_item
 *
 * @author Lion Li
 * @date 2024-05-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = NftItem.class, reverseConvertGenerate = false)
public class NftItemBo extends BaseEntity {

    /**
     *
     */
    @NotBlank(message = "不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 1.珍宝 2.混沌源晶 3.混沌余烬
     */
    @NotBlank(message = "1.珍宝 2.混沌源晶 3.混沌余烬不能为空", groups = { AddGroup.class, EditGroup.class })
    private String nftType;

    /**
     * 标题
     */
    @NotBlank(message = "标题不能为空", groups = { AddGroup.class, EditGroup.class })
    private String title;

    /**
     * 价格
     */
    @NotNull(message = "价格不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal price;

    /**
     * 是否鉴定  （珍宝）
     */
    @NotBlank(message = "是否鉴定  （珍宝）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String jd;

    /**
     * 装备等级（珍宝）
     */
    @NotBlank(message = "装备等级（珍宝）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String zbdj;

    /**
     * 财宝值 （珍宝、混沌余烬、混沌源晶）
     */
    @NotBlank(message = "财宝值 （珍宝、混沌余烬、混沌源晶）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cbz;

    /**
     * 混沌能量 （珍宝、混沌余烬、混沌源晶）
     */
    @NotBlank(message = "混沌能量 （珍宝、混沌余烬、混沌源晶）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String hdnl;

    /**
     * 单位财富成本  单位成本=卖价0.1÷财富值10=0.01 （珍宝、混沌余烬、混沌源晶）
     */
    @NotNull(message = "单位财富成本  单位成本=卖价0.1÷财富值10=0.01 （珍宝、混沌余烬、混沌源晶）不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal dwcbz;

    /**
     * 继承财富 继承财富=财富值×0.8  （珍宝）
     */
    @NotNull(message = "继承财富 继承财富=财富值×0.8  （珍宝）不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jccfz;

    /**
     *  继承单位财富成本=售价÷继承财富 （珍宝）
     */
    @NotNull(message = " 继承单位财富成本=售价÷继承财富 （珍宝）不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal jccfcb;

    /**
     * 综合性价比=（财宝值×财宝值成本+混沌能量×混沌能量成本）÷售价
     */
    private BigDecimal zhxjb;

    /**
     * 完整数据包
     */
    @NotBlank(message = "完整数据包不能为空", groups = { AddGroup.class, EditGroup.class })
    private String data;

    /**
     * 详情属性
     */
    @NotBlank(message = "详情属性不能为空", groups = { AddGroup.class, EditGroup.class })
    private String attribute;

    /**
     * 物品id
     */
    @NotNull(message = "物品id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long itemId;

    /**
     * 版本时间戳
     */
    @NotBlank(message = "版本时间戳不能为空", groups = { AddGroup.class, EditGroup.class })
    private String versionNum;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;

    /**
     * 商品详情最后更新时间
     */
    @NotNull(message = "商品详情最后更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date getAttributeTime;


}
